今天學習範圍
SQL Lesson 8: A short note on NULLs
https://sqlbolt.com/lesson/select_queries_with_nulls
在昨天我們有觀察到當使用了OUTER JOIN後
有些欄位的值是空的(NULL)的
如果是數值的話 或許你會想我們可以在建立資料的時候幫它補上0就好
但這樣會有一個隱憂 就是這個0的數據並非該欄位的真實數據
原本該欄位就是NULL的狀態 如果補上0來表示的話
後續再做數據分析時就容易有偏差
例如取平均時就會將該數值0也加入母群體中進行計算
如此一來 數據的分析就會偏誤
因此保留其原本的狀態(NULL)也是個合適的方式
那麼 如果我們想要在資料中找出空值(NULL)或 不為空值的欄位
我們可以如何進行呢?
其實在SQL語法中 我們可以直接使用IS NULL
或 IS NOT NULL
語法
接下來就讓我們練習看看吧
我們要找出尚未被安排辦公室(Building)的員工姓名與其角色
因此我們可以找出Employees表格中 Building欄位仍是空白的員工
所以我們使用 IS NULL
即可
我們要找出還沒有配對到員工的建築物名稱
首先我們需要先關聯兩張表格才能同時得到員工和建築物的相關資訊
因此 我們需要使用昨天提到的LEFT JOIN
來連結兩張表格
然後再用IS NULL
來找出沒有配對到員工的建築物名稱
所以SQL查詢語法會像下方這樣
SELECT * FROM Buildings
LEFT JOIN Employees ON Building_name = Building
WHERE Name IS NULL
今天就先到這邊 明天將學習到更進階的SQL查詢語法